package leetcode;

//给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
//示例 1：
//输入: "babad"
//输出: "bab"
//注意: "aba" 也是一个有效答案。
//示例 2：
//输入: "cbbd"
//输出: "bb"

import java.util.Stack;

public class problems_002 {

    public static void main(String[] args) {
        ListNode node1 = new ListNode(2);
        ListNode node2 = new ListNode(4);
        ListNode node3 = new ListNode(3);
        node1.next = node2;
        node2.next = node3;
        ListNode nodeA1 = new ListNode(5);
        ListNode nodeA2 = new ListNode(6);
        ListNode nodeA3 = new ListNode(4);
        nodeA1.next = nodeA2;
        nodeA2.next = nodeA3;
        System.out.println(new Solution().addTwoNumbers(node1, nodeA1));
    }

    static public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }
    }

    static class Solution {
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            ListNode root = new ListNode(0);
            ListNode listNode = root;
            int add = 0;
            while (null != l1 || null != l2 || add > 0){
                //
                int num = getVal(l1) + getVal(l2) + add;
                add = num / 10;
                num = num % 10;
                //
                listNode.next = new ListNode(num);
                listNode = listNode.next;
                //
                if(null != l1) l1 = l1.next;
                if(null != l2) l2 = l2.next;
            }
            return root.next;
        }
        private int getVal(ListNode node){
            if(null == node) return 0;
            return node.val;
        }
    }
}
